# 魔法方法

# 当一个对象被销毁的时候，第一个调用的方法就是 __del__(self)

class C:
    def __init__(self):
        print("我来了～")

    def __del__(self):
        print("我走了～")


c = C()  # 我来了～

del c  # 我走了～

print("=" * 300)

# 但是，调用 del object 不一定就肯定触发 __del__ 方法
c = C()
d = c
del c  # 此时就不会调用 __del__ 方法，因为该对象还存在引用 d,类似 java 的垃圾回收机制，只有它的最后一个引用都 '销毁' 的时候该对象才会被销毁
print("程序还在执行的时候是不会销毁对象d的")
